18d9a494bbaef4666c1b2a6fb1b80553959d419c,src/freenet/node/RequestHandler.java,RequestHandler,run,#,68
Before Change
if(o instanceof KeyBlock) {
KeyBlock block = (KeyBlock) o;
Message df = createDataFound(block);
source.sendAsync(df, null, 0, null);
if(key instanceof NodeSSK) {
if(needsPubKey) {
DSAPublicKey key = ((NodeSSK)block.getKey()).getPubKey();
After Change
short waitStatus = 0;
while(true) {
waitStatus = rs.waitUntilStatusChange(waitStatus);
if((waitStatus & RequestSender.WAIT_REJECTED_OVERLOAD) != 0) {
// Forward RejectedOverload
Message msg = DMT.createFNPRejectedOverload(uid, false);
source.sendAsync(msg, null, 0, null);
}
if((waitStatus & RequestSender.WAIT_TRANSFERRING_DATA) != 0) {
// Is a CHK.
Message df = DMT.createFNPCHKDataFound(uid, rs.getHeaders());
source.send(df, null);
PartiallyReceivedBlock prb = rs.getPRB();
BlockTransmitter bt =
new BlockTransmitter(node.usm, source, uid, prb, node.outputThrottle, this);
node.addTransferringRequestHandler(uid);
if(!bt.send()){
finalTransferFailed = true;
}
return;
}
status = rs.getStatus();
if(status == RequestSender.NOT_FINISHED) continue;
switch(status) {
case RequestSender.NOT_FINISHED:
case RequestSender.DATA_NOT_FOUND: